CSS Variables支援度:Can I Use
calc()支援度:Can I Use
rgb()支援度:Can I Use
昨天了解到color-contrast()
如何使用,但因為瀏覽器支援度問題,目前只能在safari特定版本以上才有效,
但是PM不會體諒你需求說來就來。
在我們殷殷期盼的color-contrast
支援度提高以前,
我們還可以怎麼根據背景顏色,自動判斷文字色彩呢?
CSS Variables
+ calc()
+ rgb()
搭配YIQ公式
!作法如下:
監聽input並設定根元素--red
、--green
、--blue
三個變數
const setRootProperties = ()=>{
root.style.setProperty('--red',red.value);
root.style.setProperty('--green',green.value);
root.style.setProperty('--blue',blue.value);
}
CSS Variables設定,根據三原色變數產出背景顏色,文字顏色再根據YIQ公式產出,這樣就完成啦!
:root{
--background-primary:rgb(var(--red),var(--green),var(--blue));
/* 算出Y */
--accessible-color:calc(
(((var(--red) * 299 + var(--green) * 587 + var(--blue) * 114) / 1000) - 128) * -1000
);
--text-primary:rgb(var(--accessible-color),var(--accessible-color),var(--accessible-color));
}
IT15-Day06-Create Variable UI with CSS Variables and YIQ